Advances in semiconductor technology in recent years have led to the development of nonvolatile semiconductor memory capable of being accessed at high speed. Such a nonvolatile semiconductor memory, for example, is NAND-type flash memory. A storage apparatus that uses flash memory as a storage medium is much better at saving power and shortening access time than a storage apparatus that has a plurality of small disk drives. Thus, system performance can be enhanced by utilizing a flash memory storage medium-equipped storage apparatus as a storage system, as the final storage medium in a server, and/or as cache memory.
In a flash memory, a block is a storage area unit for a batch erase of data, and a page is a storage area unit for reading and writing data. Hereinafter, unless otherwise noted, simply referring to either a block or a page will indicate either a physical block or page in a flash memory. In a flash memory, a plurality of pages is disposed in a single block. Also, a direct rewrite of data stored in a flash memory is not possible. That is, when rewriting stored data, the flash memory first saves stored valid data to a dynamic random access memory (DRAM) or to another block. Next, the flash memory erases the stored data in block units. Then, the flash memory writes the data to the erased block (s). In this way, the rewriting of data in a flash memory accompanies the block-by-block erasing of data. The characteristics of the flash memory are such that cells in which data is stored degrade when data erases are executed. When cells degrade, data error rates increase, and repeated erases make the cells unusable. Thus, the number of block erases is limited.
Flash memory failures will be explained next.
As flash memory failures, in addition to retention errors caused by the above-described cell degradation and data retention time overruns, sudden failures due to circuit malfunctions such as broken wiring, and other such hardware device malfunctions are known. These sudden failures are not generally a function of cell use frequency, and as such, cannot be dealt with using the above-described wear leveling and other such approaches.
Thanks to advances in semiconductor micro-fabrication technologies in recent years, flash memories capable of high-density recording are being manufactured, but error incidence rates have tended to increase in line with increases in failures and number of erases.
The number of data erases of specific blocks inside a solid state drive (SSD), which is a storage apparatus that uses flash memory, increases, resulting in cases where the blocks become unusable, sudden failures occur, and the SSD as a whole no longer has enough capacity to be provided externally despite the fact that the other blocks (area) are in sound condition.
To deal with this, a method for providing redundancy inside the flash memory is conceivable. In a storage apparatus that uses a hard disk drive (HDD) or other such disk apparatus, this method is called redundant arrays of inexpensive disks (RAID). A single unit of redundancy is called a RAID group (RG). Systems corresponding to RAID levels that are defined by RAID are also considered ways of providing redundancy.
As a technique for enhancing reliability by providing redundancy inside an SSD, a control method in a case where a RAID-configured memory is managed as a single module and numerous such modules are lined up side by side is known (for example, Patent Literature 1).